26 research outputs found

    M2OS-Mc: An RTOS for Many-Core Processors

    Get PDF
    A current trend of industrial systems is reducing space, weight and power (SWaP) through the allocation of different applications on a single chip. This is enabled by the continued improvement of semiconductor technology which allows the integration of multiple cores in a single processor chip, as the processors are prevented to continue increasing their clock rate due to the "power-wall". The use of Commercial-Off-The-Shelf (COTS) multi-core processors for real-time purposes presents issues due to the shared bus used to access the shared memory. An alternative to the use of multi-core processors are the many-core processors with tens to hundreds of processors in the same chip, using different scalable ways to interconnect their cores. This paper presents the adaptation of the M2OS Real-Time Operating System (RTOS) and its simplified Ada run-time for mesh-based many-core processors. This RTOS is called M2OS-mc and has been tested on the Epiphany III many-core processor (referred in this paper simply as Epiphany), a many-core which has 16 cores connected by a Network-on-Chip (NoC) consisting of a 4x4 2D mesh. In order to have a synchronized way to send messages between tasks through the NoC independently of the core where they are being executed, we provide sampling port communication primitives

    Non-Blocking Synchronization Between Real-Time and Non-Real-Time Applications

    Get PDF
    Real-time systems where applications with timing requirements coexist with applications without timing constraints are increasingly common. Furthermore, the processors used in desktops, smart phones or embedded devices are mostly multi-core, allowing the execution of applications in parallel. This article presents a set of non-blocking synchronization mechanisms to share data between real-time and non-real-time applications executing in different cores of a shared memory multi-core system. Four typical producer/consumer scenarios have been explored; a) shared data object with real-time reader, b) shared data object with real-time writer, c) shared queue with real-time writer, and d) shared queue with real-time reader. For these scenarios we have developed different non-blocking protocols where the execution of the real-time application is always prioritized over the execution of the non-real-time part. In this way, the real-time applications never have to repeat their operations and, consequently, their execution times are bounded. Furthermore, to reduce the overhead caused by the copies of the information used in the non-blocking algorithms, we have imposed the limitation of a single real-time reader or a single real-time writerinthealgorithmsdeveloped.Finally,we have evaluated the response times of the developed protocols on a multi-core device with the Android operating system.This work was supported in part by the Spanish Government and FEDER funds (AEI/FEDER, UE) under Grant TIN2017-86520-C3-3-R (PRECON-I4)

    How windows size and number can influence the schedulability of hierarchically-scheduled time-partitioned distributed real-time systems

    Get PDF
    Partitioning techniques are implemented in the development of safety-critical applications to ensure isolation among components. An adequate scheduling of the execution of such partitions is a key challenge so that applications meet the hard deadlines imposed. In this work, we study the effect of different partition window configuration parameters, with the aim of analyzing their impact in the worst-case response times of system tasks. This is the first step in the development of an algorithm for optimizing partition windows in hierarchically-scheduled time-partitioned distributed systems

    Optimization in Heterogeneous Distributed Real-Time Systems based on Partitioning

    Get PDF
    In this work, a solution that can be applied to the RTSS 2022’s Industry Challenge is proposed. It relies on a real-time system model and a set of schedulability analysis and optimization tools, enabling the design of safety-critical applications compliant with timing requirements. The presented toolchain is enhanced with a novel task allocation technique, which leverages sensitivity analysis and that can be applied to heterogeneous systems, to provide promising solutions that improve state-of-the-art algorithms’ performance.This work was supported in part by MCIN/ AEI /10.13039/501100011033/ FEDER “Una manera de hacer Europa” under grant PID2021-124502OB-C42 (PRESECREL)

    Performance comparison between the SRP and DFP synchronization protocols in MaRTE OS

    Get PDF
    The Deadline Floor Protocol (DFP) is a mutual exclusion synchronization protocol designed as an alternative to the Baker's Stack Resource Protocol (SRP) to access shared resources in a system scheduled under the Earliest Deadline First (EDF) policy. We have implemented both protocols in the real-time operating system MaRTE OS and we have compared their performance. Overall, DFP is easier to implement and performs better than SRP for the same data structure, a doubly-linked list (DLL). More significantly, there is a more efficient data structure (the binary heap) that cannot be used with SRP and outperforms the DLL with both protocols

    Response-Time Analysis of Multipath Flows in Hierarchically-Scheduled Time-Partitioned Distributed Real-Time Systems

    Get PDF
    Modern industrial cyberphisical systems exhibit increasingly complex execution patterns like multipath end-to-end flows, that force the real-time community to extend the schedulability analysis methods to include these patterns. Only then it is possible to ensure that applications meet their deadlines even in the worst-case scenario. As a driving motivation, we present a real industrial application with safety requirements, that needs to be re-factored in order to leverage the features of new execution paradigms such as time partitioning. In this context we develop a new response-time analysis technique that provides the capacity of obtaining the worst-case response time of multipath flows in time-partitioned hierarchical schedulers and also in general fixed-priority (FP) real-time systems. We show that the results obtained with the new analysis reduce the pessimism of the currently used holistic analysis approach.This work was supported in part by the Doctorados Industriales 2018 program from the University of Cantabria and the Spanish Government and FEDER funds (AEI/FEDER, UE) under Grant TIN2017-86520-C3-3-R (PRECON-I4)

    Servicios de tiempo real en el sistema operativo Android

    Get PDF
    Debido a la gran expansión y crecimiento de Android el interés por utilizar este sistema operativo en entornos de tiempo real es cada vez mayor. En este trabajo se describen una serie de mecanismos proporcionados por el siste-ma operativo Android/Linux mediante los cuales es posible aislar uno o más núcleos de un multiprocesador simétrico para ser utilizados exclusivamente por tareas con requisitos temporales. Gracias a los mecanismos de aislamiento, la tasa de interferencias sufridas por las tareas con requisitos temporales respecto a otras tareas o aplicaciones que se ejecutan en el sistema operativo es muy baja. Un segundo aspecto en el que se mejora el comportamiento de tiempo real del sistema operativo Android está relacionado con las limitaciones para tiempo real de la librería bionic (modificación de glibc para Android). Para solventar estas limitaciones se ha utilizado la librería glibc incluida en la distribución es-tándar de Linux. Se han realizado una serie de tests que demuestran que la libre-ría tradicional funciona correctamente en Android. Asimismo se ha llevado a cabo la caracterización temporal de Android/glibc para las funciones más rele-vantes de POSIX para tiempo real observándose que la respuesta temporal del sistema es apropiada para aplicaciones de tiempo real laxo.Este trabajo ha sido financiado parcialmente por el Gobierno de España con referencia TIN2014-56158-C4-2-P (M2C2) y por el programa de becas predoctorales de la Universidad de Cantabria

    Selección de una arquitectura many-core comercial como plataforma de tiempo real

    Get PDF
    Los procesadores many-core representan la evolución natural de las arquitecturas de computadores de propósito general. Su aumento de prestaciones y la contribución a la disminución de tamaño, peso y consumo del sistema completo con respecto a los procesadores actuales hace prever que serán usados también como plataformas para sistemas de tiempo real en el futuro. En este artículo se identifi can los requisitos que debería cumplir una arquitectura many-core para su utilización en sistemas de tiempo real y se analizan varios procesadores many-core existentes en el mercado para acabar seleccionando el mejor candidato. Finalmente el artículo adelanta algunos de los retos esperables en el desarrollo del soporte para aplicaciones de tiempo real sobre estos sistemasEste trabajo ha sido nanciado en parte por el Gobierno de España en el proyecto TIN2014-56158-C4-2-P (M2C2)

    Real-time Ada applications on Android

    Get PDF
    RESUMEN: Android es el sistema operativo más extendido en el ámbito de los dispositivos móviles. Su gran expansión y desarrollo ha provocado que exista un gran interés para utilizarlo en entornos con requisitos temporales. Este trabajo presenta un mecanismo para utilizar el lenguaje de programación Ada en el desarrollo de aplicaciones de tiempo real sobre Android. Ada es un lenguaje que ofrece soporte para aplicaciones con requerimientos temporales bajo la suposición de que la plataforma de ejecución proporciona las garantías necesarias en tiempos de respuesta. Para satisfacer estas garantías proponemos que las aplicaciones escritas en este lenguaje utilicen los mecanismos de aislamiento proporcionados por el sistema operativo Android/Linux, a través de los cuales es posible aislar uno o varios núcleos del procesador para ser usados exclusivamente por aplicaciones de tiempo real. Además, hemos estudiado los mecanismos que se encuentran disponibles en Android para compartir datos entre aplicaciones Ada con requisitos temporales y el resto de aplicaciones que se ejecutan en el mismo sistema.ABSTRACT:Android is the most extended operating system in the field of smartphones. Its wide diffusion has caused a great interest in using it in real time environments. This paper presents a mechanism to use the Ada programming language for real-time applications on Android. Ada is a language that offers support for environments with real-time requirements under the assumption that the execution platform provides the necessary guarantees on response time. To accomplish these guarantees, we propose that applications written in this language use the isolation mechanisms provided by the Android/Linux operating system through which it is possible to isolate one or several processor cores to use them exclusively with real-time Ada applications. In addition, we have studied the available mechanisms in Android to share data between these isolated real-time Ada applications with other applications executing in the same system.Este trabajo ha sido financiado en parte por el Gobierno de España en el proyecto TIN2014-56158-C4-2-P (M2C2)

    A review on optimization techniques for the deployment and scheduling of distributed real-time systems

    Get PDF
    RESUMEN: En las ultimas tres décadas, se ha realizado un gran número de propuestas sobre la optimización del despliegue y planificación de sistemas de tiempo real distribuidos bajo diferentes enfoques algorítmicos que aportan soluciones aceptables a este problema catalogado como NP-difícil. En la actualidad, la mayor parte de los sistemas utilizados en el sector industrial son sistemas de criticidad mixta en los que se puede usar la planificación cíclica, las prioridades fijas y el particionado, que proporciona aislamiento temporal y espacial a las aplicaciones. Así, en este artículo se realiza una revisión de los trabajos publicados sobre este tema y se presenta un análisis de las diferentes soluciones aportadas para sistemas de tiempo real distribuidos basados en las políticas de planificación que se están usando en la práctica. Como resultado de la comparación, se presenta una tabla a modo de guía en la que se relacionan los trabajos revisados y se caracterizan sus soluciones.ABSTRACT: In the last three decades, a large number of proposals has been carried out for the optimization of the deployment and scheduling of distributed real-time systems under different algorithmic approaches that provide acceptable solutions for this NP-hard problem. Nowadays, most of the systems used in industry are mixed-criticallity systems which use cyclic scheduling, fixed-priority scheduling and partitioning, which provides both temporal and spatial isolation in the execution of applications. Thus, in this work a review of the works published on this topic is performed, as well as an analysis of the different proposed solutions for distributed real-time systems based on the scheduling policies that are used in practice. As a result of the comparison, a table intended as a guide is elaborated in which all the reviewed works are reported and their solutions are characterized.Este trabajo ha sido financiado en parte por el Gobierno de España y los fondos FEDER (AEI /FEDER, UE) en el proyecto TIN2017-86520-C3-3-R (PRECON-I4)
    corecore